package com.gf.common.hibernate;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;

/**
 * 
 * 用户注册成功后，
 * 生成相应的表名：feed_userId,feed_comment_userId
 * @author zhuguifeng
 *
 */
@Component("hibernateHelper")
public class HibernateHelper{

	private Log logger = LogFactory.getLog(HibernateHelper.class);
	
	//autowired是无法注入到static变量中
	@Autowired
	private  JdbcTemplate jdbcTemplate;
	
	@Value("${hibernateHelper.createFeedSql}")
	private String createFeedSql;
	
	@Value("${hibernateHelper.createFeedCommentSql}")
	private String createFeedCommentSql;
	
	
	/**
	 * 初始化用户数据库表信息
	 * 个性签名 + 相应评论
	 * @param userId
	 */
	public void initUserTables(long userId){
		createFeedTable(userId);
		createFeedCommentTable(userId);
		logger.info("用户数据表名初始化完成");
	}
	
	

	/**
	 * 自动建表
	 * 存储个人状态
	 * 每个用户对应一个
	 * 表名：feed_userId
	 * @param tableName
	 */
	private  void createFeedTable(long userId){
		jdbcTemplate.update(createFeedSql, userId);
	}
	
	
	/**
	 * 创建用户个性签名的评论
	 * @param userId
	 */
	private   void createFeedCommentTable(long userId){
		jdbcTemplate.update(createFeedCommentSql, userId,userId);
	}		
	
}
